An example of a magnetic media platter with embedded servo fields is illustrated in FIG. 1. These servo fields may also be referred to as servo bursts or servo marks. Each concentric circle schematically represents one track which is subdivided into multiple sectors and each radial line extending from the center outward, represents a servo field. A servo field contains data which is pre-written on the disk, during manufacturing of the disk, concerning the location of the servo field and the track on the disk for positioning of the read/write head relative to a particular track. The servo fields are then used by the controller for positioning of the read/write head during read and write operations. It is imperative therefore, that the data within the servo fields not be written over. In order not to write over the data within a servo field, the controller must know where the servo fields are and be able to suspend write operations over that area.
The usable regions for storage on the disk are located on the tracks, between the servo fields. Data to be stored on the disk is written in these regions between the servo fields, which will be referred to as a data region. The recording of data within these regions is measured in bits per inch (BPI). Assuming a constant bit density to record a bit the number of bits which can be recorded between servo fields is much less for the inner circle, track 0, than the number of bits which can be recorded in the outermost circle, track N. Though possible, it is impractical to provide a unique recording and reading speed for each track. In order to take advantage of the higher storage potential of the outer tracks without exceeding the allowable density on the inner tracks, the disk is divided into multiple zones and a method of zone bit recording is used. The tracks are grouped into zones such that all the tracks are spaced in close proximity to each other. The data rate at which data is written to or read from the disk is constant for all tracks within a zone and different for each zone. Because the disk is rotated at the same speed for all the zones, in order to take advantage of the greater recording area of the outer zones, the recording speed is increased for the outer zones on the disk.
The data to be stored on a disk is broken up into manageable portions called sectors. Multiple sectors are generally stored on each track. An example of a typical format of a sector is illustrated in FIG. 2. Each sector includes an ID field, a GAP field, a data field and a PAD field. The ID field is the unique identification tag for each sector in a track of a disk drive media and differentiates one sector from another. Within the ID field are four subfields, the ID PLO subfield, the ID AM subfield, the ID subfield and the CRC subfield. The ID PLO subfield is a multiple byte field of a known pattern which is used by the phase lock loop of the encoder/decoder (ENDEC) to synchronize to the incoming data stream. The ID AM subfield is one byte of a known pattern which is used by the drive controller to synchronize or align to the beginning of the ID subfield. This synchronization is necessary to align the disk controller to a data byte boundary, in order to differentiate each segment of data to a particular field. The ID subfield follows the ID AM subfield and contains the actual identification for the sector and consists of multiple bytes used to specify the address of the sector on the disk drive. The number of bytes within the ID subfield is at the discretion of the manufacturer of the disk drive and is controlled by the format of the particular disk drive used. The number of bytes within the ID subfield is the same for every sector and can comprise a cylinder high byte, a cylinder low byte, a sector number byte, a head number byte and a byte or two for defect management and to signify the end of the track. The ID subfield is then followed by a fixed number of error detection bytes in the CRC subfield which are used to detect any errors in the ID field. Some formats, referred to as ID.sub.-- Less formats, do not use an ID field, but rather use a header subfield within the DATA field.
The GAP field is a fixed number of bytes which are used to separate the ID field from the DATA field. The DATA field includes a DATA PLO subfield, a DATA Address Mark DAM subfield, a DATA subfield and an error correction code (ECC) subfield. The DATA PLO subfield is a multiple byte field of a known pattern which is used by the phase lock loop of the encoder/decoder to synchronize to the incoming data stream. The DAM subfield is one byte of a known pattern which is used by the drive controller to synchronize or align to the beginning of the DATA subfield. The DATA subfield is the portion of the sector where the actual data, which is communicated between the host computer and the disk drive, is stored. The ECC subfield is a fixed number of bytes tagged on to the end of the DATA subfield which are used to detect and correct soft or hard errors on the media within the capability of the code. This is necessary in order to avoid the transfer of erroneous data to the host computer.
In ID.sub.-- Less formats, the ID field is replaced by a header subfield within the DATA field, thus combining the ID field and the DATA field into one field and reducing the number of bits necessary for each sector. The ID field can be brought under the protection of the same ECC field as the DATA field and therefore afforded the same protection as the DATA field. The CRC field associated with the ID field can be decreased or eliminated, further reducing the overhead of the system and eliminating the hardware which generates the CRC field. In ID.sub.-- Less formats, all of the information in the sector header may be predetermined by reading a small number of other sector headers on the track, usually one. The sync field or PLO field in an ID.sub.-- Less format can be reduced in size or the reliability of the sync circuitry improved since the sync field will always occur immediately after a sector pulse. Because some automatic calculation methods of the prior art calculate the split field sizes before the data field sync detection, they may not fully support an ID.sub.-- Less format.
Employing constant density recording on a media with embedded servo fields where the servo fields are prerecorded at fixed angular distances relative to each other, will usually result in a track format that periodically requires a sector to be split in order to fit in the usable regions in more than one servo field. In order to obtain optimal or near optimal utilization of the space between the servo fields on a disk it may be necessary for the fields within a sector to be split in order to accommodate a servo burst. It is desirable to determine the fields that are split and the split field size automatically, without intervention by the microprocessor controlling the disk drive. In the methods of the prior art a sector pulse was generated by a separate logic block or from the media itself. It is also desirable to generate a sector pulse automatically to signal the beginning of each sector.
The disk drive system performs three major operations on a disk inserted into the disk drive system. The disk drive can format the disk for storing data in the format supported by the system and the disk. The disk drive system also performs write operations to the disk to store data on the disk transmitted from the host computer to the disk drive system and read operations from the disk to read data from the disk and transmit it to the host computer. The disk is continuously rotating within the disk drive system, even as the read/write head moves between zones, which may cause the read/write head to cross over one or more servo fields as it travels from one track or zone to another track or zone. The controller circuit knows the angular position of the read/write head, but as the read/write head changes tracks between different zones, the number of sectors between servo marks changes, because of the change in bit density between zones. The controller does not know how to translate this angular position after a zone change into a known position on the track relative to the sectors and may be unable to determine the relative positioning of the sector pulses on the specific track. To re-orient itself on the disk, the hard disk controller will normally wait for the INDEX mark and orient itself from the INDEX mark for the track that it is on. However, waiting for the INDEX mark during a read or write operation increases the latency in reaching the next desired sector. This delay adds to the seek latency of the disk drive system.
An automatic method for determining the fields that are split and the split field size is used by Cirrus Logic, Inc. of Fremont, Calif. in Part Number CL-SH360. This method imposes some constraints on track format, specifically by only allowing the data subfield to be split and not allowing a split in the ID field, the GAP field and the ECC subfield. The length of the data split fields is stored within the ID field during format operation and used during read and write operations. In order to avoid intervention by the microprocessor controlling the drive during the format operation, the ID fields of the track are stored in a table in the drive buffer memory and read from the drive buffer memory during format operation. This method does not support automatic generation of the sector pulse.
Another automatic method for determining the fields that are split and the split field size is used by Adaptec, Inc. of Milpitas, Calif. in Part Number AIC-7110. This method is based on a timing signal to indicate the time when a servo field is present in order to suspend and resume the disk's format, read or write operations. This timing signal can be generated by circuitry external to the drive controller to indicate the time when a servo field is present in order to suspend and resume the operation of the disk. This timing signal must always be asserted within the same byte in a given sector. However, due to fluctuations in detecting the sector servo field, this method is not reliable.
The timing signal for the AIC-7110 can also be generated when an internal counter underflows. In this method constraints are also imposed on the track format by not allowing a split in the ID field. An internal counter is loaded from a first-in first-out stack (FIFO) with a number representing the number of bytes from the data field SYNC byte to the next servo field. The counter is then decremented upon detection or writing of a SYNC byte. When this counter becomes zero, the timing signal is generated and the counter is loaded from the FIFO again. Using this method, the counter can be loaded automatically from the ID field or by the microprocessor controlling the drive. If the counter is loaded by the microprocessor controlling the drive, frequent intervention is required by the microprocessor. The AIC-7110 does not support automatically generating the sector pulse.
Another automatic method for calculating split fields and split field size is taught by Machado et al. in U.S. Pat. No. 5,255,136 issued on Oct. 19, 1993. This method also embeds the split information within the ID field and therefore does not allow the ID field to be split. The split field information is stored in count bytes which are stored on a byte count stack within the sequencer and will be loaded into a byte counter of the sequencer to be used by the sequencer for sequencing data sectors to the disk surface or reconstructing the data sectors into unbroken continuous byte sequences. This method also does not support automatic generation of sector pulses.
Another method proposed by Estakhri et al. in U.S. patent application Ser. No. 07/904,804 filed on Jun. 25, 1992, calculates the split counts and delay from the servo sector field to the sector pulse algorithmically without any track format constraints. This method is restricted because it requires a first table to find the delay from the servo mark to the first sector pulse after the servo mark and a second table to find the physical sector number of the first sector after the servo mark if the read, write or format operation is not starting from the INDEX mark. If the two tables are not used, this method must start from the INDEX mark at the beginning of each track. The requirement of starting the disk operation from the INDEX mark adds on the average, one half of a disk revolution to the seek latency for this method. This will increase the seek latency an average of 5.5 msec to 8.3 msec depending on the disk drive system. This is not an acceptable delay for most applications. Because seek latency is a parameter which is used to compare the performance of disk drives, it is desirable to implement a method for split field calculation which will minimize the seek latency of the disk drive system without using a table. To avoid the increased latency associated with starting the disk operation from the INDEX mark, the two tables referred to above are used.
This method taught by Estakhri et al. also requires a free running clock operating at the disk data rate from the encoder/decoder. Also within this method there are implicit timing restrictions used to calculate split field sizes before data field sync detection, which may be a problem in the ID.sub.-- Less formats depending on the clock that is used for the state machine executing the algorithm. This method does support formats in which the data field comprises a data subfield and an ECC subfield but must be extended to support formats in which the data field consists of a header subfield, a data subfield and an ECC subfield.
What is needed is a system which eliminates any real time intervention by the microprocessor controlling the disk drive for track processing. What is further needed is a system which also eliminates the embedding of split field information in the ID field of the sector in order to support systems which use an ID.sub.-- Less format. What is also needed is a system which does not store the track/zone split field information and the sector pulse generator information in a table in the buffer memory of the disk drive. What is still further needed is a system which supports various track format constraints such as the ID.sub.-- Less format and other format constraints such as not splitting the ECC subfield or in the case of formats that use an ID field for the sector, not splitting the ID field.